package ysq.xyg.sys.service;


import org.springframework.web.multipart.MultipartFile;
import ysq.xyg.base.model.dto.ReturnEntity;
import ysq.xyg.base.service.BaseService;
import ysq.xyg.sys.model.po.SysFile;
import ysq.xyg.sys.model.po.SysUser;
import ysq.xyg.sys.model.vo.SysFileVo;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.List;

/**
 * 系统管理-附件管理service接口
 *
 * @author shengQiang yu
 * @date 2019-3-30 13:46:37
 */
public interface SysFileService extends BaseService<SysFile> {
    /**
     * 分页查询
     *
     * @param sysFileVo 对象
     * @param pageSize 当前页面
     * @param pageNum 页面数量
     * @return ReturnEntity 对象
     * @author shengQiang yu
     * @date 2019-3-30 13:46:37
     */
    ReturnEntity page(SysFileVo sysFileVo, int pageSize, int pageNum);
    /**
     * 修改
     *
     * @param sysFileVo 对象
     * @param currentUser 当前用户
     * @return ReturnEntity 对象
     * @author shengQiang yu
     * @date 2019-3-30 13:46:37
     */
    ReturnEntity addOrUpdate(SysFileVo sysFileVo, SysUser currentUser);
    /**
     * 删除
     *
     * @param id 主键id删除
     * @param currentUser 当前用户
     * @return ReturnEntity 对象
     * @author shengQiang yu
     * @date 2019-3-30 13:46:37
     */
    ReturnEntity delete(String id, SysUser currentUser);
    /**
     * 获取集合
     *
     * @param sysFileVo 对象
     * @return List<SysFile> SysFile集合
     * @author shengQiang yu
     * @date 2019-3-30 13:46:37
     */
    List<SysFile> acceptList(SysFileVo sysFileVo);
    /**
     * 文本编辑器附件上传
     *
     * @param file     文件对象
     * @param request  请求
     * @param catalog  文件保存自定义目录
     * @return
     * @Author: shengQiang yu
     * @Date: 2018-12-04 10:40
     */
    ReturnEntity layEditUpload(MultipartFile file, HttpServletRequest request, String catalog);
    /**
     * 附件下载
     *
     * @param id 附件id
     * @param response HttpServletResponse对象
     * @param request HttpServletRequest对象
     * @return
     * @author shengQiang yu
     * @date 2019-03-07 17:10
     */
    void download(HttpServletResponse response, HttpServletRequest request, String id);
    /**
     *@Author: YuShengQiang
     *@Date: 2018-12-04 10:40
     *@Description:附件上传
     * @param file 文件对象
     * @param request 请求
     * @param catalog 文件保存自定义目录
     * @param objectId 文件保存objectId，空为自定义
     * @param requestFileType 文件要求类型：1、图片 ，空为不做要求
     * @param isSave 是否保存到数据库：1、是，2、否
     * @param sysUser 当前操作用户信息
     * @return
     */
    ReturnEntity fileUpload(MultipartFile file, HttpServletRequest request, String catalog, String requestFileType, String objectId, String isSave, SysUser sysUser);
}
